farmterritoryfandomcom_ru-20200215-history
Модуль:Animal
local p = {} local arrData = mw.loadData( 'Module:DataAnimal' ) --Список животных--* function p.animalList(frame) local tp = frame.args1 data={} local data=getanimal() local i=1 table.sort(data,function( a, b ) return a.name < b.name end ) local total=0 local text="" for k, v in ipairs(data) do if v.tp tp then text=text.."".. ""..v.level.."50px".. ""..v.name.."".. ""..v.buy.."".. ""..v.prod.."".. ""..v.sell.."".. ""..v.tm.."".. ""..v.rez.."".. ""..v.corall.."".. ""..v.res.."".. ""..v.location.."".. "" total=total+1 end end return " ".. " Всего: "..total.." ".. " ".. " Уровень ".. " Животные ".. " Покупка ".. " Продукт ".. " Продажа 15px ".. " Рост, минуты ".. " Доход в час 15px ".. " Загон ".. " Корм ".. " Локация ".. " "..text.. " " end --Список всех животных-- function p.alllist() local data=getanimal() local total=0 local text='' for i, v in ipairs(data) do text=text.."".. ""..v.level.."50px".. ""..v.name.."".. ""..v.buy.."".. ""..v.prod.."".. ""..v.sell.."".. ""..v.tm.."".. ""..v.rez.."".. ""..v.corall.."".. ""..v.res.."".. ""..v.tp.."".. ""..v.location.."".. "" total=total+1 end return " ".. " Всего: "..total.." ".. " ".. " Уровень ".. " Животные ".. " Покупка ".. " Продукт ".. " Продажа 15px ".. " Рост, часы ".. " Доход в час 15px ".. " Загон ".. " Корм ".. " Категория ".. " Локация ".. " "..text.. " " end function getanimal() local data={} local i=1 for key, v in pairs(arrData) do datai={name=v.name, res=v.res, tp=v.tp} if v.level 0 then datai.level='' else datai.level="c "..v.level.." ур. " end if v.res '' then datai.res='-' else datai.res=''..v.res..'' end if v.buy~=0 then datai.buy=v.buy else datai.buy=v.buyagro..'15px' end if v.tm 0 then datai.tm='-' else datai.tm=v.tm end if v.sell 0 then datai.sell='-' else datai.sell=v.sell end if v.nameprod '' then datai.prod=v.name else datai.prod=v.nameprod end if v.corall~='' then datai.corall=''..v.corall..'' else datai.corall='-' end if v.tm~=0 and v.sell~=0 then datai.rez=math.floor(v.sell/v.tm*100/60)/100 else datai.rez='-' end if v.location '' then datai.location='Любые' else datai.location=''..v.location..'' end i=i+1 end table.sort(data,function( a, b ) return a.name < b.name end ) return data end --Карточка животного-- function p.animal( frame ) local id = frame.args1 local text='' text=text..' [['..arrDataid.tp1..']] / [['..arrDataid.tp..']] / '..id..' '.. ' Общие сведения '.. ' 200px '.. ' '..id..' '.. ' [[Файл:'..arrDataid.nameprod..'.png|50px]] '..arrDataid.nameprod..' '.. ' Рост: �� '..arrDataid.tm..' час., доход: ' if arrDataid.tm~=0 and arrDataid.sell~=0 then text=text..(math.floor(arrDataid.sell/arrDataid.tm*100)/100) else text=text..'-' end text=text..' 15px в час '.. ' Покупка ('..id..') Продажа ('..arrDataid.nameprod..') ' text=text..' ' if arrDataid.buy~=0 then text=text..' '..arrDataid.buy..' 15px ' else text=text..' '..arrDataid.buyagro..' 15px ' end text=text..' '..arrDataid.sell..' 15px ' if arrDataid.tm~=0 and arrDataid.buyagro 0 then text=text..' Покупка животного окупится через '..(math.floor(arrDataid.buy/arrDataid.sell*arrDataid.tm/24*100)/100)..' дней, для этого нужно снять '..(math.floor(arrDataid.buy/arrDataid.sell*100)/100)..' урожаев. ' elseif arrDataid.buyagro>0 then text=text..' Окупаемость животного вычислить нельзя, т.к. животное покупается за агробаксы. ' end text=text..' Корм для животного: ' if arrDataid.res '' then text=text..'Не требуется. Продукция производится автоматически.' else text=text..'[['..arrDataid.res..']]' end text=text..' ' text=text..' Можно выращивать в поле и промзоне. '.. ' '.. ' Локация ' if arrDataid.location '' then text=text..' Можно выращивать в любой локации. ' else text=text..' Можно выращивать только в локации "'..arrDataid.location..'". ' end text=text..' Загружается на фабрики '..(require("Module:Factory").fab(arrDataid.nameprod)).. ' Выращивается в загонах ' if arrDataid.corall '' then text=text..'Информации о загоне для этого животного пока нет.' elseif arrDataid.yncorall 0 then text=text..'Животное можно выращивать только в [['..arrDataid.corall..'|загоне]].' else text=text..'Животное можно выращивать как в [['..arrDataid.corall..'|загоне]], так и без него.' end text=text..'Category:Животные'.. '[[Category:'..arrDataid.tp..']]' return text end --Список животных,которые едят корм-- function p.fab(frame) local id='' if type(frame) 'string' then id=frame elseif type(frame) 'table' then id= frame.args1 end local arrData = mw.loadData( 'Module:DataAnimal' ) local data={} local i=1 for key,v in pairs(arrData) do if v.res id then datai={name=v.name} i=i+1 end end local ok, msg = pcall(function () if data1.name nil then error() end end) local text=' Можно скормить животным: ' if ok then text=text..' ' table.sort(data,function( a, b ) return a.name < b.name end ) for i,v in ipairs(data) do text=text..' '..v.name..' ' end else text=text..'Пока никому ' end return text end --Список продукци животных-- function p.product() local text=' ' data={} local j=1 for key,v in pairs(arrData) do dataj={fab=key, name=v.nameprod} j=j+1 end table.sort(data,function( a, b ) return a.name < b.name end ) for i,v in ipairs(data) do if i 1 then text=text....string.sub (v.name, 1,2)..' '..v.name..' ' else if string.sub (datai.name, 1,2)>string.sub (datai-1.name, 1,2) then text=text..' '....string.sub (v.name, 1,2)..' ' end if datai-1.name~=datai.name then text=text..' '..v.name..' ' end end end text=text..' ' return text end function p.list(frame) local id = frame.args1 local text='' local data=getanimal() if #data 0 then return '' end text=text..' Животные > '..id..' '.. ' Общие сведения '.. '50px '..id..''.. ' ' ..id..' производится животными: ' if #data>1 then table.sort(data,function( a, b ) return a.name < b.name end ) end text=text.." " for k, v in ipairs(data) do if v.prod id then text=text..' '..v.name..' ' end end text=text.." " return text end return p